package demo3;
/**
 * author : 李硕2307124008
 * date : 2024/10/21 15:44
 * version : 1.0
 * 该类表示课程信息，包含课程的基本属性和操作方法。
 */
public class Course {
    /**
     * 课程的唯一标识符。
     */
    private String courseId;
    /**
     * 课程的名称。
     */
    private String courseName;
    /**
     * 课程的类型。
     */
    private String courseType;
    /**
     * 课程是否处于停用状态，true 表示启用，false 表示停用。
     */
    private boolean isActive;

    /**
     * 无参构造函数，用于创建一个课程对象，自动生成课程 ID。
     */
    public Course() {
        // 调用 generateCourseId 方法生成课程 ID
        this.courseId = generateCourseId();
    }

    /**
     * 带参构造函数，用于创建一个具有指定名称、类型和状态的课程对象，同时自动生成课程 ID。
     *
     * @param courseName 课程的名称
     * @param courseType 课程的类型
     * @param isActive   课程是否处于启用状态
     */
    public Course(String courseName, String courseType, boolean isActive) {
        // 初始化课程名称
        this.courseName = courseName;
        // 初始化课程类型
        this.courseType = courseType;
        // 初始化课程是否启用的状态
        this.isActive = isActive;
        // 调用 generateCourseId 方法生成课程 ID
        this.courseId = generateCourseId();
    }

    /**
     * 生成课程 ID 的私有方法，目前返回一个固定的示例 ID。
     * 可根据实际需求修改此方法以生成不同的课程 ID。
     *
     * @return 生成的课程 ID
     */
    private String generateCourseId() {
        // 返回示例课程 ID，可根据需求修改
        return "C001";
    }

    /**
     * 显示课程的详细信息，包括课程 ID、名称、类型和是否停用。
     */
    public void displayCourse() {
        // 输出课程 ID
        System.out.println("课程ID: " + this.courseId);
        // 输出课程名称
        System.out.println("课程名称: " + this.courseName);
        // 输出课程类型
        System.out.println("课程类型: " + this.courseType);
        // 根据 isActive 的值输出课程是否停用的信息
        System.out.println("是否停用: " + (this.isActive ? "否" : "是"));
    }

    // ... getter和setter方法 ...
}